﻿using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Data;
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Windows.Navigation;

namespace CentroVentas.Forms.Compras
{
    /// <summary>
    /// Lógica de interacción para FrmGenerarCompra.xaml
    /// </summary>
    public partial class FrmGenerarCompra : Page
    {
        CVCore32.Class.Funciones.Compras.CarroCompras compra;
        private int _idProveedor = 0;

        public int IdProveedor
        {
            get { return _idProveedor; }
            set { _idProveedor = value; }
        }
        
        public FrmGenerarCompra()
        {
            InitializeComponent();
            crearEstructura();

            compra = new CVCore32.Class.Funciones.Compras.CarroCompras();

        }

        private void crearEstructura()
        {
            // Crear estructura.
            // dt.Columns.Add("NOMBRECOLUMNA", TIPO COLUMNA typeof(string));



            dt.Columns.Add("IdProducto", typeof(Int32)).Caption = "Id Producto";
            dt.Columns.Add("CodBarras", typeof(string)).Caption = "Codigo de barras";
            dt.Columns.Add("Descripcion", typeof(string)).Caption = "Descripcion";
            dt.Columns.Add("Marca", typeof(string)).Caption = "Marca";
            dt.Columns.Add("Costo", typeof(string)).Caption = "Costo";
            dt.Columns.Add("Cantidad", typeof(Int32)).Caption = "Cantidad";
            dt.Columns.Add("Subtotal", typeof(string)).Caption = "Subtotal";

            
            //// Insertar datos
            //dt.Rows.Add("1", "22", "", "", "", 1, "");
            //dt.Rows.Add("2", "44", "", "", "", 3, "");
            // Mostrar datos
            GrillaCompra.DataContext = dt;            
        }

        DataTable dt = new DataTable();

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            ProveedorExp.Width = this.ActualWidth - 40;

            txtRutProveedor.Focus();

            GrillaCompra.Height = Borde.ActualHeight - 20;
            GrillaCompra.Width = Borde.ActualWidth - 20;

            GrillaCompra.Columns[0].Width = 75;
            GrillaCompra.Columns[1].Width = 125;
            GrillaCompra.Columns[2].Width = 375;
            GrillaCompra.Columns[3].Width = 100;
            GrillaCompra.Columns[4].Width = 100;
            GrillaCompra.Columns[5].Width = 100;
            GrillaCompra.Columns[6].Width = 100;
        }



        private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            ProveedorExp.Width = this.ActualWidth - 40;
        }

        private void btnBuscarProveedor_Click(object sender, RoutedEventArgs e)
        {
            //Forms.Proveedor.FrmProveedoresSeleccionar frm = new Proveedor.FrmProveedoresSeleccionar();
            Forms.Proveedor.FrmProveedorBuscar frm = new Proveedor.FrmProveedorBuscar();
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                CVCore32.Data.Proveedor proveedor = CVCore32.Class.Funciones.Proveedores.Proveedor.getProveedor(frm.IdProveedor);
                IdProveedor = frm.IdProveedor;
                txtNombreProveedor.Text = proveedor.Nombre;
                txtGiroProveedor.Text = proveedor.Giro;
                txtDireccionProveedor.Text = proveedor.Direccion1 + ", " + proveedor.Direccion2 + ", " + proveedor.Comuna1.NombreComuna;
                txtContactoProveedor.Text = proveedor.Vendedor;
                txtCorreoProveedor.Text = proveedor.Email;
                txtTelefonoProveedor.Text = proveedor.Telefono;
                txtWebProveedor.Text = proveedor.Web;
                txtCatalogoProveedor.Text = proveedor.Catalogo;
            }
        }

        private void txtRutProveedor_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (CVCore32.Class.Funciones.Proveedores.Proveedor.ExisteProveedor(txtRutProveedor.Text))
                {
                    CVCore32.Data.Proveedor proveedor = CVCore32.Class.Funciones.Proveedores.Proveedor.getProveedor(txtRutProveedor.Text);

                    txtNombreProveedor.Text = proveedor.Nombre;
                    txtGiroProveedor.Text = proveedor.Giro;
                    txtDireccionProveedor.Text = proveedor.Direccion1 + ", " + proveedor.Direccion2 + ", " + proveedor.Comuna1.NombreComuna;
                    txtContactoProveedor.Text = proveedor.Vendedor;
                    txtCorreoProveedor.Text = proveedor.Email;
                    txtTelefonoProveedor.Text = proveedor.Telefono;
                    txtWebProveedor.Text = proveedor.Web;
                    txtCatalogoProveedor.Text = proveedor.Catalogo;
                    IdProveedor = proveedor.ProveedorId;
                }
                else
                {
                    MessageBox.Show("Provedoor no existe", "CentroVentas", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            else if (e.Key == Key.F2)
            {
                Forms.Proveedor.FrmProveedorBuscar frm = new Proveedor.FrmProveedorBuscar();
                if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    CVCore32.Data.Proveedor proveedor = CVCore32.Class.Funciones.Proveedores.Proveedor.getProveedor(frm.IdProveedor);

                    txtNombreProveedor.Text = proveedor.Nombre;
                    txtGiroProveedor.Text = proveedor.Giro;
                    txtDireccionProveedor.Text = proveedor.Direccion1 + ", " + proveedor.Direccion2 + ", " + proveedor.Comuna1.NombreComuna;
                    txtContactoProveedor.Text = proveedor.Vendedor;
                    txtCorreoProveedor.Text = proveedor.Email;
                    txtTelefonoProveedor.Text = proveedor.Telefono;
                    txtWebProveedor.Text = proveedor.Web;
                    txtCatalogoProveedor.Text = proveedor.Catalogo;
                    IdProveedor = proveedor.ProveedorId;
                }
            }
        }

        private void txtProducto_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                try
                {
                    if (CVCore32.Class.Funciones.Productos.Producto.ExisteProducto(txtProducto.Text))
                    {
                        CVCore32.Data.Producto prod = CVCore32.Class.Funciones.Productos.Producto.getProducto(txtProducto.Text);

                    }
                    else
                    {
                        MessageBox.Show("Producto no existe");
                    }                
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                
            }
            else if (e.Key == Key.F2)
            {
                try
                {

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    
                }
            }
        }

        Double total = 0d;
        List<int> precios = new List<int>();

        private void btnCrearProducto_Click(object sender, RoutedEventArgs e)
        {
            CentroVentas.Forms.Productos.FrmProductosCrear frm = new Productos.FrmProductosCrear(false);
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                dt.Rows.Add(frm.Id, frm.Codigo, frm.Desc, frm.Marca, CVCore32.Class.Core.Currency.formatearMoneda(frm.Costo), frm.Cantidad, CVCore32.Class.Core.Currency.formatearMoneda(frm.Costo * frm.Cantidad));                
                GrillaCompra.DataContext = dt;

                total = total + (frm.Costo * frm.Cantidad);
                txtPrecio.Text = CVCore32.Class.Core.Currency.formatearMoneda(total);
                precios.Add(frm.IdPrecio);
            }
        }

        private void btnAceptarCompra_Click(object sender, RoutedEventArgs e)
        {
            if (IdProveedor != 0)
            {
                if (GrillaCompra.Items.Count != 0)
                {
                    int _idC = CVCore32.Class.Funciones.Compras.Compras.Comprar(IdProveedor,"COMENTARIOS",precios.ToArray());
                    MessageBox.Show("Orden realizada.", "CentroVentas", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                    btnAceptarCompra.IsEnabled = false;
                    
                    // NavigationService.GetNavigationService(this).Navigate(new Forms.FrmReport(@"C:\ElectronVentas\CentroVentas\Trunk\CVCore32\Reports\CrystalReport1.rpt",_idC));
                }
                else
                {
                    MessageBox.Show("Debe agregar productos al carro.", "CentroVentas", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un proveedor","CentroVentas",MessageBoxButton.OK,MessageBoxImage.Asterisk);
            }
        }
    }
}
